/**
 * 回显数据字典
 * @param {*} datas 数组原始数据
 * @param {*} value 需要查找的值
 * @param {*} param2 需要对应的 val和key
 * @returns 回显的数据
 */
export function selectDictLabel(datas, value, { dictValue = 'dictValue', dictLabel = 'dictLabel' } = {}) {
	if (!['', undefined].includes(value)) {
		const actions = [];
		Object.keys(datas).some((key) => {
			if (datas[key][dictValue] == value) {
				actions.push(datas[key][dictLabel]);
				return true;
			}
		});
		return actions.join('');
	} else {
		return '—';
	}
}

/**
 * 回显数据字典（字符串数组）
 * @param {*} datas 数组原始数据
 * @param {*} value 需要查找的值 多个时按照separator拼接
 * @param {*} separator 多个值时拼接的标识（默认为 , ）
 * @param {*} param2 需要对应的 val和key
 * @returns 回显的数据
 */
export function selectDictLabels(datas, value, separator = ',', { dictValue = 'dictValue', dictLabel = 'dictLabel' } = {}) {
	if (!['', undefined].includes(value)) {
		const actions = [];
		const temp = value?.split(separator);
		Object.keys(value?.split(separator)).some((val) => {
			Object.keys(datas).some((key) => {
				if (datas[key][dictValue] == '' + temp[val]) {
					actions.push(datas[key][dictLabel] + separator);
				}
			});
		});
		return actions.join('').substring(0, actions.join('').length - 1);
	} else {
		return '—';
	}
}

/****
 * 添加日期范围
 * @param {*} params 原始数据
 * @param {*} dateRange 获取数据的字段名，或者 时间 数组数据
 * @param {*} propName 传给后台的字段后缀
 * @returns 处理之后的数据
 */
export function addDateRange(params, dateRange, propName, format) {
	try {
		const str = typeof dateRange === 'string',
			[startTime = '', endTime = ''] = str ? params[dateRange] : dateRange;
		if (typeof propName === 'undefined') {
			params['startTime'] = startTime.format(format);
			params['endTime'] = endTime.format(format);
		} else {
			params['start' + propName] = startTime.format(format);
			params['end' + propName] = endTime.format(format);
		}
		if (str) delete params[dateRange];
	} catch (error) {
		console.log(error);
	}
}
